package ${basePackage}.web.api.${moduleName};

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.Valid;

import java.util.Date;
import java.util.List;

/**
* 代码生成器自动生成
* Date:${.now}
* @author
*/
@Api(value = "${className}RestApi", description = "${className}相关AIP", tags = "${className}RestApi")
public interface ${className}RestApi{

    /* ************************************************************************************ *
       ***************************************  增  ***************************************
    * ************************************************************************************* */

    /**
    * 新增${className}
    * TODO 补充调整代码
    *
    * @param command
    * @return
    */
//  @PostMapping("${classObjectName}/add")
//  @ApiOperation(value = "新增${className}", httpMethod = "POST")
//  ResponseEntity<InvokeResult> add(@RequestBody @Valid ${className}CreateCommand command);

    /* ************************************************************************************ *
       ***************************************  删  ***************************************
    * ************************************************************************************* */

    /**
    * 根据Id，删除${className}
    * TODO 补充调整代码
    *
    * @param id
    * @return
    */
//  @DeleteMapping("${classObjectName}/deleteById")
//  @ApiOperation(value = "根据Id，删除${className}", httpMethod = "DELETE")
//  ResponseEntity<InvokeResult> deleteById(@RequestParam("id") @NotEmpty String id);

    /**
    * 根据Ids，删除多个${className}
    * TODO 补充调整代码
    *
    * @param command
    * @return
    */
//  @DeleteMapping("${classObjectName}/deleteByIds")
//  @ApiOperation(value = "根据Ids，删除多个${className}", httpMethod = "DELETE")
//  ResponseEntity<InvokeResult> deleteByIds(@RequestParam("ids") @NotNull String[] ids);

    /* ************************************************************************************ *
       ***************************************  改  ***************************************
    * ************************************************************************************* */

    /**
    * 根据Id，更新${className}
    * TODO 补充调整代码
    *
    * @param command
    * @return
    */
//  @PutMapping("${classObjectName}/update")
//  @ApiOperation(value = "根据Id，更新${className}", httpMethod = "PUT")
//  ResponseEntity<InvokeResult> update(@RequestBody @Valid ${className}UpdateCommand command);

    /* ************************************************************************************ *
       ***************************************  查  ***************************************
    * ************************************************************************************* */

    /**
    * 根据ID获取${className}
    * TODO 补充调整代码
    * @param id
    * @return
    */
//  @GetMapping("${classObjectName}/getDetailById")
//  @ApiOperation(value = "根据ID获取${className}", httpMethod = "GET")
//  ResponseEntity<InvokeResult> getById(@RequestParam("id") @NotEmpty String id);

    /**
    * 根据分页参数以及条件参数获取客户端分页列表
    * TODO 补充调整代码
    *
    * @param page
    * @param command
    * @return
    */
//  @GetMapping("${classObjectName}/getPage")
//  @ApiOperation(value = "根据分页参数以及条件参数获取客户端分页列表", httpMethod = "GET")
//  ResponseEntity<InvokeResult> getPage(@Valid ${className}PageCommand command);

}